The actual C program is held in a source file which is a simple file of text we create with an editor. Sometimes the compiler will directly produce an executable file which contains the machine code to run on the microcontroller. In other systems the compiler produces an intermediate file which is linked with other intermediate files to make the machine code. The compiler we use produces an assembler file which you can then assemble to make the machine code.
Assembler is the name given to the instructions we wrote above. It is also the name of the program which will convert the text form of these instructions (MOVF) to the actual numbers which the computer processor understands and can act on.
If this sounds complicated, it is because it is. The good news is that the MPLAB X IDE environment will perform all these steps for you automatically.
A water descaler
Image courtesy Everyday Practical Electronics.